package com.shuyuwl.core.service;

import com.shuyuwl.core.domain.AbstractBaseDomain;
import com.shuyuwl.core.exception.SymServiceException;
import com.shuyuwl.core.repository.DaoRepository;

import java.io.Serializable;
import java.util.List;

/**
 * 该类是所有业务逻辑处理的接口父类，定义了所有的实体都该具备的方法
 * 包含的方法为: 新增对象 删除对象 查找对象 更新对象 对象的翻页查询
 * @Author ZChao
 * @Date 2019/9/3
 **/
public interface IDaoService<T extends AbstractBaseDomain, ID extends Serializable, R extends DaoRepository<T, ID>> {

    void add(Iterable<T> iterable) throws SymServiceException;

    void delete(ID id) throws SymServiceException;

    void delete(T domain) throws SymServiceException;

    T save(T domain) throws SymServiceException;

    T get(ID id) throws SymServiceException;

    List<T> findAll() throws SymServiceException;
}
